

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Brief description of DriverDisc version 3 &mdash; Anaconda 25.14 documentation</title>
  

  
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  

  

  
    <link rel="top" title="Anaconda 25.14 documentation" href="index.html"/>
        <link rel="next" title="iSCSI and Anaconda" href="iscsi.html"/>
        <link rel="prev" title="Rules for commit messages" href="commit-log.html"/> 

  
  <script src="_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search">
          

          
            <a href="index.html" class="icon icon-home"> Anaconda
          

          
          </a>

          
            
            
              <div class="version">
                25.14
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
                <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction to Anaconda</a></li>
<li class="toctree-l1"><a class="reference internal" href="release.html">Building a Release</a></li>
<li class="toctree-l1"><a class="reference internal" href="boot-options.html">Anaconda Boot Options</a></li>
<li class="toctree-l1"><a class="reference internal" href="kickstart.html">Anaconda Kickstart Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="commit-log.html">Rules for commit messages</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="">Brief description of DriverDisc version 3</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#devices-which-can-contain-dds">Devices which can contain DDs</a></li>
<li class="toctree-l2"><a class="reference internal" href="#what-can-be-updated-using-dds">What can be updated using DDs?</a></li>
<li class="toctree-l2"><a class="reference internal" href="#selecting-dd-manually">Selecting DD manually</a></li>
<li class="toctree-l2"><a class="reference internal" href="#automatic-driverdisc-detection">Automatic DriverDisc detection</a></li>
<li class="toctree-l2"><a class="reference internal" href="#ddv3-structure">DDv3 structure</a></li>
<li class="toctree-l2"><a class="reference internal" href="#initrd-overlay-driverdisc-image">Initrd overlay driverdisc image</a></li>
<li class="toctree-l2"><a class="reference internal" href="#firmware-and-module-update">Firmware and module update</a></li>
<li class="toctree-l2"><a class="reference internal" href="#package-installation">Package installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="#summary">Summary</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="iscsi.html">iSCSI and Anaconda</a></li>
<li class="toctree-l1"><a class="reference internal" href="multipath.html">Multipath and Anaconda</a></li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">pyanaconda</a></li>
<li class="toctree-l1"><a class="reference internal" href="testing.html">Testing</a></li>
<li class="toctree-l1"><a class="reference internal" href="tests/modules.html">tests</a></li>
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="index.html">Anaconda</a>
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          





<div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="index.html">Docs</a> &raquo;</li>
      
    <li>Brief description of DriverDisc version 3</li>
      <li class="wy-breadcrumbs-aside">
        
          
            <a href="_sources/driverdisc.txt" rel="nofollow"> View page source</a>
          
        
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="brief-description-of-driverdisc-version-3">
<h1>Brief description of DriverDisc version 3<a class="headerlink" href="#brief-description-of-driverdisc-version-3" title="Permalink to this headline">¶</a></h1>
<p>For a new major release we decided to introduce a new version of DriverDisc
feature to ensure the smoothest vendor and user experience possible. We had
many reasons for it:</p>
<ul class="simple">
<li>the old DD didn&#8217;t support multiple architectures</li>
<li>the old DD wasn&#8217;t particulary easy to create</li>
<li>the old DD had two copys of modules, one for anaconda and one for
instalation</li>
<li>the modules in old DD weren&#8217;t checked for kernel version</li>
</ul>
<p>We also changed the feature internal code to enable some functionality that
was missing from the old version. More about it below.</p>
<div class="section" id="devices-which-can-contain-dds">
<h2>Devices which can contain DDs<a class="headerlink" href="#devices-which-can-contain-dds" title="Permalink to this headline">¶</a></h2>
<p>The best place to save your DriverDisc to is USB flash device. We also support
(or plan to) IDE and SATA block devices with or without partitions, DriverDisc
image stored on block device, initrd overlay (see documentation below) and for
special cases even network retrieval of DriverDisc image.</p>
</div>
<div class="section" id="what-can-be-updated-using-dds">
<h2>What can be updated using DDs?<a class="headerlink" href="#what-can-be-updated-using-dds" title="Permalink to this headline">¶</a></h2>
<p>All drivers for block devices, which weren&#8217;t used for retrieving DriverDiscs,
the same applies also for network drivers eg. you cannot upgrade network
driver for device, which was used prior the DriverDisc extraction.</p>
<p>RPMs for installation. If the DriverDisc repo contains newer package, than the
official repository, the newer package will get used.</p>
<p>We also plan to support anaconda&#8217;s updates.img placement on the DriverDisc to
update stage2 behaviour of anaconda.</p>
</div>
<div class="section" id="selecting-dd-manually">
<h2>Selecting DD manually<a class="headerlink" href="#selecting-dd-manually" title="Permalink to this headline">¶</a></h2>
<p>Use the &#8216;inst.dd&#8217; kernel command line option to trigger DD mode.
If no argument is specified, the UI will prompt for the location of the driver
rpm. Otherwise, the rpm will be fetched from the specified location.</p>
<p>Please consult the appropriate Installer Guide for further information.</p>
</div>
<div class="section" id="automatic-driverdisc-detection">
<h2>Automatic DriverDisc detection<a class="headerlink" href="#automatic-driverdisc-detection" title="Permalink to this headline">¶</a></h2>
<p>Anaconda automatically looks for driverdiscs during startup.</p>
<p>The DriverDisc has to be on partition or filesystem which has been labeled
with &#8216;OEMDRV&#8217; label.</p>
</div>
<div class="section" id="ddv3-structure">
<h2>DDv3 structure<a class="headerlink" href="#ddv3-structure" title="Permalink to this headline">¶</a></h2>
<p>The new DriverDisc format uses simple layout which can be created on top of
any anaconda&#8217;s supported filesystem (vfat, squashfs, ext2 and ext3).</p>
<div class="highlight-python"><div class="highlight"><pre><span></span>/
|rhdd3   - DD marker, contains the DD&#39;s description string
/rpms
  |  /i386 - contains RPMs for this arch and acts as package repo
  |  /i586
  |  /x86_64
  |  /ppc
  |  /...  - any other architecture the DD provides drivers for
</pre></div>
</div>
<p>There is a special requirement for the RPMs used to update drivers. Anaconda
picks up only RPMs which provide &#8220;kernel-modules = &lt;running kernel version&gt;&#8221;.</p>
</div>
<div class="section" id="initrd-overlay-driverdisc-image">
<h2>Initrd overlay driverdisc image<a class="headerlink" href="#initrd-overlay-driverdisc-image" title="Permalink to this headline">¶</a></h2>
<p>We have designed another possible way of providing updates in network boot
environments. It is possible to update all modules this way, so if special
storage module (which gets used early) needs to be updated, this is the
preffered way.</p>
<p>This kind of driverdisc image is applied over the standard initrd and so has
to respect some rules.</p>
<ul class="simple">
<li>All updated modules belong to /lib/modules/&lt;kernel version&gt;/..  according to
their usual location</li>
<li>All new modules belong to /lib/modules/&lt;kernel version&gt;/updates</li>
<li>All new firmware files belong to /lib/firmware</li>
<li>The rpm repo with updated packages belongs to /tmp/DD-initrd/</li>
<li>The (empty) trigger file /.rundepmod must be present</li>
</ul>
</div>
<div class="section" id="firmware-and-module-update">
<h2>Firmware and module update<a class="headerlink" href="#firmware-and-module-update" title="Permalink to this headline">¶</a></h2>
<p>The firmware files together with all .ko files from the RPMs are exploded to
special module location, which has preference over built-in Anaconda modules.</p>
<p>Anaconda doesn&#8217;t use built-in modules (except some storage modules needed for
the DD to function properly) during the DriverDisc mode, so even in case when
you are updating some modules with second (or later) DriverDisc, the updated
modules will be loaded. There is one exception though, if your module depends
on a module which is only present in built-in module directory, that built-in
module gets also loaded.</p>
</div>
<div class="section" id="package-installation">
<h2>Package installation<a class="headerlink" href="#package-installation" title="Permalink to this headline">¶</a></h2>
<p>It is also possible to include arbitrary packages on the DriverDisc media and
mark them for installation. You just have to include the package name in the
package repo for correct architecture and mark it as mandatory.</p>
</div>
<div class="section" id="summary">
<h2>Summary<a class="headerlink" href="#summary" title="Permalink to this headline">¶</a></h2>
<p>This new DriverDisc format should simplify the DD creation and usage a lot. We
will gladly hear any comments as this is partially still work in progress.</p>
</div>
</div>


           </div>
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="iscsi.html" class="btn btn-neutral float-right" title="iSCSI and Anaconda" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="commit-log.html" class="btn btn-neutral" title="Rules for commit messages" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 2015, Red Hat, Inc..

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'./',
            VERSION:'25.14',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true
        };
    </script>
      <script type="text/javascript" src="_static/jquery.js"></script>
      <script type="text/javascript" src="_static/underscore.js"></script>
      <script type="text/javascript" src="_static/doctools.js"></script>

  

  
  
    <script type="text/javascript" src="_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   

</body>
</html>